package Programa4;

import java.awt.Component;
import java.io.IOException;
import javax.swing.JOptionPane;

public class Main {

    static int n = 0, m = 0;
    static String terminales[], noTerminales[], cadena;
    public static int mat[][];
    public static Tabla t;
    public static Object[][] datos;
    private static Component JFrame;

    public static void main(String[] args) throws IOException {


        JOptionPane.showMessageDialog(JFrame, "Bienvenido al Análisis Sintáctico LL(1)");
        n = Integer.parseInt(JOptionPane.showInputDialog("Dame el numero de simbolos no terminales:"));
        while (n <= 0) {
            n = Integer.parseInt(JOptionPane.showInputDialog("No puedes poner 0 o menos, dame otro numero:"));
        }
        noTerminales = new String[n];
        for (int i = 0; i < n; i++) {
            noTerminales[i] = (JOptionPane.showInputDialog("No terminal numero " + (i + 1)));
            noTerminales[i] = noTerminales[i].toUpperCase();
        }

        m = Integer.parseInt(JOptionPane.showInputDialog("Dame el numero de simbolos terminales:"));
        while (m <= 0) {
            m = Integer.parseInt(JOptionPane.showInputDialog("No puedes poner 0 o menos, dame otro numero:"));
        }

        terminales = new String[m + 1];
        terminales[0] = " ";
        for (int i = 1; i < m + 1; i++) {
            terminales[i] = (JOptionPane.showInputDialog("Terminal numero " + i));
        }


        datos = new Object[n][m + 1];

        for (int i = 0; i < noTerminales.length; i++) {
            datos[i][0] = noTerminales[i];
        }

        cadena = JOptionPane.showInputDialog("Dama la cadena de entrada: ");
        t = new Tabla();
        t.show();
    }
    
    public static void imprime() throws Exception{
        System.out.println(datos[2][4]);
    }
}
